using System;
using System.Collections.Generic;
using Christian.Helle.PocketNews.PocketPC.NewsProtocol;

namespace Christian.Helle.PocketNews.PocketPC.Data
{
    public interface IDataProvider
    {
        string[] GetCachedNewsgroups();
        List<ArticleHeader> GetArticlesEx(string newsgroup, int maxcount);
        void UpdateNewsgroupCache(string[] groups);
        string[] SearchNewsgroups(string parameter);
        void SaveArticlesEx(ArticleHeader[] headers, string newsgroup);
        void SubscribeToGroup(string group);
        bool DoesTableExist(string newsgroup);
        void CreateNewsgroupTable(string newsgroup);
        string[] LoadSubscriptions();
        void UpdateNewsgroupDetails(Newsgroup newsgroup);
        Newsgroup GetNewsgroupDetails(string group);
        string GetArticleBody(string newsgroup, int msg_id);
        void SaveArticleBody(string newsgroup, int msg_id, string body);
        List<Draft> LoadDrafts();
        void SaveDraft(Guid uniqueId, string newsgroup, string subject, string body);
        void UpdateDraft(Guid uniqueId, string newsgroup, string subject, string body);
        void DeleteDraft(Guid guid);
    }
}